High-performance computing refers to the systems used to solve large and complex computational problems. These complex problems arise in applications such as nuclear weapons research and creating high-resolution weather models. Typically, high-performance computing requires specialized, high-performance hardware, such as supercomputers, that drive massively paralleled central processing units (CPUs). For many years, supercomputers have been the predominant hardware used to run massive calculations.
Although effective, supercomputers are expensive and require specialized skills to set up and operate. In order for an organization to make use of supercomputers, significant hardware investments are required, as well as hiring specialized programmers and administrators. However, recent advances in technology have provided alternate means of performing high-performance computing that is far less expensive than traditional supercomputers.
One of the new approaches to high-performance computing involves the use of clusters. Clusters are simply standalone computers that are networked together into a massively paralleled processor (MPP) systems. Each computer runs independently and solves part of a distributed computation. The availability of cheap but powerful personal computers combined with fast networking technologies has made clustering as effective as supercomputers in solving large computational problems, but at a far cheaper price. The availability of open and freely modifiable operating systems such as Linux™ have allowed clustering to be more easily implemented by the average organization. Although clustering has been instrumental in providing inexpensive MPP, the management of clustered systems is not trivial. Administering hundreds of independently running computers poses many challenges, including physical aspects (heat removal, access for maintenance, etc.) and system administration tasks (setting up machines, checking status, etc). A variety of approaches for addressing these and related issues may therefore be desirable.